package projekt.algorytmy;

import static org.junit.Assert.*;


import java.util.TreeSet;

import org.junit.Test;

import algorytmy.Algorytmy;

public class NaiwnyTest extends TestSzablon{

	public NaiwnyTest(String wzorzec, String tekst) {
		super(wzorzec, tekst);
	}

	
	@Test(expected=Exception.class)
	public void testPrzekroczonaLiczbaWatkow() throws Exception {
		@SuppressWarnings("unused")
		TreeSet<Integer> wynik = man.start(Algorytmy.NAIWNY, wzorzec,tekst, 5);
	}

	@Test
	public void testPoprawnosci1() throws Exception {
		TreeSet<Integer> wynik = man.start(Algorytmy.NAIWNY, wzorzec,tekst, 1);
		assertArrayEquals(expected.toArray(),wynik.toArray());
	}
	@Test
	public void testPoprawnosci2() throws Exception{
		TreeSet<Integer> wynik = man.start(Algorytmy.NAIWNY, wzorzec,tekst, 2);
		assertArrayEquals(expected.toArray(),wynik.toArray());
	}
	
	@Test
	public void testPoprawnosci3() throws Exception{
		TreeSet<Integer> wynik = man.start(Algorytmy.NAIWNY, wzorzec,tekst, 3);
		assertArrayEquals(expected.toArray(),wynik.toArray());
	}
	
	@Test
	public void testPoprawnosci4() throws Exception{
		TreeSet<Integer> wynik = man.start(Algorytmy.NAIWNY, wzorzec,tekst, 4);
		assertArrayEquals(expected.toArray(),wynik.toArray());
	}
	//@Test(expected=Exception.class)
	public void testPodwojeUzycie() throws Exception{
		Thread t = new Thread(){
			public void run(){
				try {
					@SuppressWarnings("unused")
					TreeSet<Integer> wynik = man.start(Algorytmy.NAIWNY, wzorzec,tekst, 3);
				} catch (Exception e) {
					
				}
			}
		};
		t.start();
		
		Thread.currentThread().wait(1);
		try{
			@SuppressWarnings("unused")
			TreeSet<Integer> wynik2 = man.start(Algorytmy.NAIWNY, wzorzec,tekst, 3);
		}catch(Exception e){
			throw new Exception();
		}
		
	}
	

}
